/*
* 联合类型表示多个类型满其中一个即可 使用 |
* 交叉类型表示需要满足多个类型的条件 使用 &
* */


// 联合类型
type IDType = number | string
const id1: IDType = 10
const id2: IDType = "typescript"
console.log(id1, id2)

// 交叉类型(两种类型或者多种类型要同时使用)
type NewType = number & string // 没有意义 没有一个数数字既是number又是string

interface InterfacePerson {
    name: string,
    age: number
}

interface InterfaceStudent {
    address: string,
    getCode: (message: string) => void
}

const person: InterfacePerson & InterfaceStudent = {
    name: "陶品奇",
    age: 22,
    address: "衡阳",
    getCode(message: string): void {
        console.log(message)
    }
}
console.log(person)
person.getCode("写代码")